/******************************************************************************* * Copyright (c) 2004, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.internal.preferences; import java.util.Iterator; import java.util.Set; /** */ public class PropertyUtil { private PropertyUtil() { } public static boolean isEqual(IPropertyMap map1, IPropertyMap map2) { Set map1Keys = map1.keySet(); Set map2Keys = map2.keySet(); if (!map1Keys.equals(map2Keys)) { return false; } for (Iterator iter = map1Keys.iterator(); iter.hasNext();) { String next = (String) iter.next(); if (!map1.getValue(next, Object.class).equals(map2.getValue(next, Object.class))) { return false; } } return true; } /** * Copies all properties from the given source to the given destination * * @param destination * @param source */ public static void copy(IPropertyMap destination, IPropertyMap source) { Set keys = source.keySet(); for (Iterator iter = keys.iterator(); iter.hasNext();) { String key = (String) iter.next(); destination.setValue(key, source.getValue(key, Object.class)); } } /** * Computes the union of a set property maps. The result will contain all properties from * all of the contributing maps. If the same property had a different value in two or * more maps, its value in the union will be null. If the same property * * Note that the result is a standalone * object and will not be updated to reflect subsequent changes in the source maps. * * @param sources * @return */ public static IPropertyMap union(IPropertyMap[] sources) { PropertyMapUnion result = new PropertyMapUnion(); for (int i = 0; i < sources.length; i++) { IPropertyMap map = sources[i]; result.addMap(map); } return result; } public static boolean get(IPropertyMap toRead, String propertyId, boolean defaultValue) { Boolean result = ((Boolean)toRead.getValue(propertyId, Boolean.class)); if (result == null) { return defaultValue; } return result.booleanValue(); } public static int get(IPropertyMap toRead, String propertyId, int defaultValue) { Integer result = ((Integer)toRead.getValue(propertyId, Integer.class)); if (result == null) { return defaultValue; } return result.intValue(); } }